20 DIM EK%(160),ND(12),CITY$(25,4,1),IC(25,4),TP(9,1),P$(13),T$(13),O$(15),L$(15),P%(20),P11%(144),P12%(280),P13%(432),P14%(2608),P15%(432),P16%(280),P17%(192),P21%(144),P22%(280),P23%(432),P24%(2608),P25%(432),P26%(280),P27%(192)
46 LOCATE 17,15:COLOR 15:PRINT"N";:COLOR 7:PRINT" for ";:COLOR 15:PRINT"N";:COLOR 7:PRINT"o."
47 A$=INKEY$:IF A$=""THEN 47 ELSE IF A$="Y"OR A$="y"THEN MO=0 ELSE IF A$="n" OR A$="N"THEN MO=1:GR=7:CY=7:BR=7:RD=15:C1=0:C2=1:C3=3:C4=0:C5=3:FOR N=0 TO 20:READ P%(N):NEXT N
49 DATA 22,11,12288,0,48,12288,0,48,12288,-256,-769,12288,0,48,12288,0,48,12288,0,0,0
65 LOCATE 1,1:PRINT"Use the ";:IF MO=0 THEN DEF SEG:POKE &H4E,1:PRINT"arrow keys":POKE &H4E,3:ELSE PRINT"arrow keys
66 PRINT"on the right":PRINT"side of your":PRINT"keyboard to":PRINT"place the":PRINT"over your":PRINT"location":PRINT"on the":PRINT"earth.":PUT(75,31),P%,XOR
510 A$=INKEY$:IF A$="" THEN 510 ELSE IF A$="8" OR A$="4" OR A$="2" OR A$="6" THEN 510 ELSE IF IST>0 THEN CLS
512 ON (VG+1) GOTO 80,180,280,380
990 LOCATE 1,1:PRINT STRING$(15,32)
995 IF IUP=1 OR ID=1 THEN TIME$="00:00:00"
999 PUT(X,Y),P%,XOR:LOCATE 1,1
1000 A$=INKEY$:IF A$=""THEN 1000
1005 IF LEN(A$)=1 THEN 1050
1010 B$=RIGHT$(A$,1):XO=X:YO=Y
1020 IF B$=CHR$(72)THEN Y=Y-1:ID=0:GOTO 1090 ELSE IUP=0:IF B$=CHR$(75)THEN X=X-1:ID=0:GOTO 1090 ELSE IF B$=CHR$(77)THEN X=X+1:ID=1:GOTO 1090:ELSE IF B$=CHR$(80)THEN Y=Y+1:GOTO 1090
1050 IF A$=CHR$(13) THEN CIRCLE(163,99),52,,,,3/18:LOCATE 13,17:PRINT"Thank you.":GOSUB 2500:GOTO 1160
1055 IF A$=CHR$(27) THEN 50 ELSE IF A$="8" OR A$="6" OR A$="4" OR A$="2" THEN 500 ELSE GOTO 1000
1090 PUT(XO,YO),P%,XOR:IF Y>157 THEN 1121 ELSE IF Y<13 THEN IF IUP=0 OR (IUP=1 AND TIME$>"00:00:01") THEN LOCATE 1,1:PRINT"Please wait...":GOSUB 2500:VG=(VG+2)MOD 4:IUP=1:GOTO 1140 ELSE Y=YO:GOTO 999
1100 IF X>160 THEN 1110 ELSE IF X<(210-Y)/1.49 OR X<(Y+1548)/21.3 THEN LOCATE 1,1:PRINT"Please wait...":GOSUB 2500:VG=(VG+3)MOD 4:GOTO 1140 ELSE GOTO 1125
1110 IF X>(Y+249)/1.49 OR X>(5023-Y)/21.3 THEN LOCATE 1,1:PRINT"Please wait...":GOSUB 2500:VG=(VG+1)MOD 4:GOTO 1140 ELSE GOTO 1125
1121 IF X<134 AND (Y>0.91*X+85.3 OR Y>0.42*X+135)THEN IF ID=0 OR (ID=1 AND TIME$>"00:00:02") THEN LOCATE 1,1:PRINT"Please wait...":GOSUB 2500:VG=(VG+3)MOD 4:ID=1:GOTO 1140 ELSE Y=YO:X=XO:GOTO 999
1123 IF X>174 AND(Y>-0.91*X+365 OR Y>-0.42*X+264.4)THEN IF ID=0 OR (ID=1 AND TIME$>"00:00:02") THEN LOCATE 1,1:PRINT"Please wait...":GOSUB 2500:VG=(VG+1)MOD 4:ID=1:GOTO 1140 ELSE Y=YO:X=XO:GOTO 999
1124 IF Y>189 THEN Y=189
1125 IF IST>0 THEN IST=IST+1:IF IST=6 THEN GOTO 400 ELSE IF IST=7 THEN GOTO 405 ELSE IF IST=8 THEN GOTO 430 ELSE IF IST=9 THEN 431 ELSE IF IST=10 THEN IST=0:GOTO 440
1130 GOTO 999
1140 GOSUB 2700:IF IN(VG)=0 THEN ON VG GOTO 100,200,300
1150 ON (VG+1) GOTO 80,180,280,380:STOP
1160 LAT=ATN(TA)/RF:LAT2=LAT:NS$="North":IF LAT<0 THEN LAT2=-LAT:NS$="South"
1290 IF LEN(A$)=2 THEN B$=RIGHT$(A$,1) ELSE B$="A":GOTO 1350
1310 IF B$=CHR$(77)THEN PRINT L$(N);:GOTO 1390
1320 IF B$=CHR$(75) THEN PRINT L$(N);:N=(N+15)MOD 16:GOTO 1400
1330 IF B$=CHR$(72) AND Y=16 THEN Y=10:PRINT L$(N);:N=N-8:IF N=-1 THEN N=0:X=22:GOTO 1402 ELSE IF N>3 THEN N=N-1:GOTO 1400 ELSE GOTO 1400
1340 IF B$=CHR$(80) AND Y=10 THEN PRINT L$(N);:N=N+8:Y=16:IF N>10 THEN N=N+1:GOTO 1402 ELSE GOTO 1402
1350 IF A$=CHR$(8) THEN L$(N)=CHR$(176):PRINT L$(N);:N=(N+15)MOD 16:GOTO 1400
1363 IF N=11 AND (A$="d" OR A$="D") THEN L$(11)=CHR$(248):PRINT CHR$(248);:CL$(0)="":CL$(1)="'":CL$(2)=CHR$(34):LOCATE 16,28:PRINT "'":LOCATE 16,31:PRINT CHR$(34):GOTO 1390
1366 IF N=11 AND (A$="h" OR A$="H") THEN L$(11)="h":PRINT"h";:CL$(0)=" ":CL$(1)="m ":CL$(2)="s":LOCATE 16,28:PRINT"m":LOCATE 16,31:PRINT"s":GOTO 1390
1367 IF N=11 THEN N=12:PRINT L$(11);
1368 IF A$=" " OR A$="+" OR A$="-" OR (ASC(A$)<58 AND ASC(A$)>47)THEN PRINT A$;:L$(N)=A$:GOTO 1390
1370 IF A$=CHR$(13) THEN COLOR BW:LOCATE 24,15:PRINT"Thank you.";:COLOR BR:GOTO 1420
1500 LON=VAL(L$(7)+L$(8)+L$(9)+L$(10))+VAL(L$(12)+L$(13))/60+VAL(L$(14)+L$(15))/3600:IF L$(11)="h"THEN LON=LON*15:IF LON>360 OR LON<0 THEN 1550 ELSE IF LON>180 THEN LON=360-LON:IF EW$="East"THEN EW$="West"ELSE EW$="East"
1502 IF LON>180 OR LON<0 OR LAT<-90 OR LAT>+90 THEN 1550
1860 MI$=T$(11)+T$(12):MI=VAL(MI$):IF MI>60 THEN 1875
1862 H$=T$(9)+T$(10):H=VAL(H$):IF(H<12 AND T$(13)="p")OR(H=12 AND T$(13)="p" AND MI=0) THEN H=H+12:H$=RIGHT$(STR$(H),2)ELSE IF H=12 AND MI>0 AND T$(13)="a" THEN H=0:H$="00"
1930 LOCATE 22,10:PRINT"Please type the first":LOCATE 23,10:PRINT"three letters: ";
1932 A$=INKEY$:IF A$=""THEN 1932
1934 IF A$=CHR$(27) THEN GOTO 50
1936 IF A$>"`" AND A$<"{" THEN A=ASC(A$)-32:A$=CHR$(A)
1940 IF A$>"@" AND A$<"[" THEN PRINT A$; ELSE GOTO 1932
1942 IT=0
1944 B$=INKEY$:IF B$=""THEN 1944
1946 IF B$=CHR$(27) THEN GOTO 50
1948 IF B$>"@" AND B$<"[" THEN B=ASC(B$)+32:B$=CHR$(B)
1950 IF B$>"`" AND B$<"{" THEN A$=A$+B$:PRINT B$;:IT=IT+1:IF IT=1 THEN 1944 ELSE 2200
1952 IF B$=CHR$(8) THEN IF IT=0 THEN LOCATE 23,25:PRINT" ";:LOCATE 23,25:GOTO 1932 ELSE IT=0:LOCATE 23,26:PRINT " ";:LOCATE 23,26:A$=LEFT$(A$,1):GOTO 1944
1953 GOTO 1944
1954 DATA ?Nome,11 ,1,Anadyr,11,2,x,0,0,x,0,0
1956 DATA ?Anchorage,10,2,Honolulu,10,0,x,0,0,x,0,0
1958 DATA Yakutat,9,2,x,0,3,x,0,4,x,0,5
1960 DATA Vancouver,8,4,x,0,5,x,0,0,x,0,0
1962 DATA Edmonton,7,5,x,0,6,x,0,0,x,0,0
1964 DATA Winnepeg,6,6,x,0,7,x,0,0,x,0,0
1966 DATA Montreal,5,7,x,0,8,x,0,0,x,0,0
1968 DATA Halifax,4,7,Newfoundland,3.5,8,x,0,9,x,0,0
1970 DATA Gothab,3,9,x,0,8,x,0,0,x,0,0
1972 DATA Cape Verde Is.,2,9,x,0,10,x,0,11,x,0,12
1974 DATA Azores,1,11,x,0,12,x,0,13,x,0,9
1976 DATA London,0,12,x,0,13,x,0,0,x,0,0
1978 DATA Paris,-1,13,x,0,14,x,0,15,x,0,0
1980 DATA Helsinki,-2,14,x,0,15,x,0,16,x,0,13
1982 DATA Moskow,-3,15,x,0,16,x,0,17,x,0,0
1984 DATA Gorki,-4,16,x,0,17,x,0,18,x,0,0
1986 DATA Sverdlovsk,-5,17,x,0,18,x,0,19,x,0,20
1988 DATA Tashkent,-6,18,x,0,19,x,0,20,x,0,0
1990 DATA Novosibirsk,-7,19,x,0,20,x,0,18,x,0,21
1992 DATA Irkutsk,-8,20,Hong Kong,-8,21,x,0,0,x,0,0
1994 DATA Yakutsk,-9,20,Tokyo,-9,21,x,0,22,x,0,23
1996 DATA Vladivostok,-10,22,x,0,23,x,0,24,x,0,0
1998 DATA Magadan,-11,23,x,0,24,x,0,1,x,0,0
2000 DATA Petropavlovsk,-12,23,x,0,24,x,0,1,x,0,0
2002 'middle set
2004 DATA Midway Is.,11,1,?Nome,11,2,x,0,0,x,0,0
2006 DATA Honolulu,10,2,?Anchorage,10,0,x,0,0,x,0,0
2008 DATA Yakutat,9,2,x,0,3,x,0,4,x,0,0
2010 DATA ?Los Angeles,8,4,Tijuana,8,5,x,0,0,x,0,0
2012 DATA ?Denver,7,5,Phoenix,7,6,Hermosillo,7,0,x,0,0
2014 DATA ?Chicago,6,6,Mexico City,6,7,Winnipeg,6,0,x,0,0
2016 DATA Montreal,5,7,?New York,5,8,Indianapolis,5,0,Bogota,5,0
2018 DATA New Foundland,3.5,7,Caracas,4,8,Georgetown,3.75,9,Paramaribo,3.5,0
2020 DATA Rio de Janeiro,3,8,Halifax,4,9,x,0,0,x,0,0
2022 DATA Cape Verde Is.,2,9,x,0,10,x,0,11,x,0,0
2024 DATA Azores,1,11,x,0,12,x,0,13,x,0,0
2026 DATA Casablanca,0,12,London,0,13,x,0,0,x,0,0
2028 DATA Paris,-1,13,x,0,14,x,0,0,x,0,0
2030 DATA Cairo,-2,13,x,0,14,x,0,15,x,0,0
2032 DATA Bagdad,-3,14,Teheran,-3.5,15,x,0,16,x,0,17
2034 DATA Gorki,-4,16,Kabul,-4.5,17,Sverdlovsh,-5,15,x,0,0
2036 DATA Karachi,-5,16,Bombay,-5.5,17,Tashkent,-6,20,x,0,0
2038 DATA Dacca,-6,17,Rangoon,-6.5,18,x,0,19,x,0,20
2040 DATA Singapore,-7.5,18,Bangkok,-7,19,x,0,20,x,0,0
2042 DATA Hongkong,-8,19,Novosibirsk,-7,20,x,0,21,x,0,0
2044 DATA Tokyo,-9,20,x,0,21,x,0,22,x,0,0
2046 DATA Sydney,-10,21,Vladivostok,-10,22,x,0,23,x,0,0
2048 DATA New Caledonia,-11,23,Nauru,-11.5,24,x,0,0,x,0,0
2050 DATA Marshall Is.,-12,24,x,0,1,x,0,0,x,0,0
2052 'bottom
2054 DATA Tonga,11,1,x,0,2,x,0,0,x,0,0
2056 DATA Honolulu,10,2,x,0,0,Cook Is.,10.5,0,x,0,0
2058 DATA Yakutat,9,2,Marguesas Is.,9.5,3,x,0,4,x,0,0
2060 DATA ?Los Angeles,8,4,Tijuana,8,0,Pitcairn Is.,8.5,0,x,0,0
2062 DATA Hermosillo,7,4,x,0,5,x,0,6,x,0,7
2064 DATA Mexico City,6,6,x,0,7,x,0,0,x,0,0
2066 DATA Lima,5,7,x,0,8,x,0,9,x,0,0
2068 DATA Caracus,4,8,x,0,9,x,0,0,x,0,0
2070 DATA Rio de Janeiro,3,8,x,0,9,x,0,0,x,0,0
2072 DATA Cape Verde Islands,2,9,x,0,10,x,0,11,x,0,0
2074 DATA Azores,1,11,x,0,12,x,0,0,x,0,0
2076 DATA Accra,0,12,x,0,13,x,0,0,x,0,0
2078 DATA Kinshasa,-1,13,x,0,14,x,0,15,x,0,0
2080 DATA Johannesburg,-2,13,x,0,14,x,0,15,x,0,0
2082 DATA Nairobi,-3,14,x,0,15,x,0,0,x,0,0
2084 DATA Mauritius,-4,16,x,0,0,x,0,0,x,0,0
2086 DATA Maldives,-5,16,Bombay,-5.5,17,x,0,0,x,0,0
2088 DATA Dacca,-6,17,Rangoon,-6.5,18,x,0,19,x,0,0
2090 DATA Jakarta,-7,19,x,0,20,x,0,0,x,0,0
2092 DATA Perth,-8,19,x,0,20,x,0,21,x,0,0
2094 DATA Tokyo,-9,20,Adelaide,-9.5,21,x,0,22,x,0,0
2096 DATA Sydney,-10,22,x,0,23,x,0,0,x,0,0
2098 DATA New Caledonia,-11,23,Norfolk Is.,-11.5,24,x,0,22,x,0,0
2100 DATA Wellington,-12,24,x,0,1,x,0,0,x,0,0
2200 N=-1:IF A$="Non"THEN 1550
2210 N=N+1:IF N>KK THEN IF MIS=0 THEN LOCATE 23,25:PRINT" ":COLOR BW:LOCATE 24,10:PRINT"Please try again.";:LOCATE 23,25:COLOR BR:MIS=1:GOTO 1932 ELSE GOTO 1550
2590 IF O>PI THEN O=O-2*PI ELSE IF O<-PI THEN O=O+2*PI
2600 'LPRINT PX*CT YY*ST D XX YY XPY T P PX
2610 ON ERROR GOTO 2800:RETURN
2615 X=XO:Y=YO:ON ERROR GOTO 2800:RESUME 2510
2700 OF=(VG*90-100)*RF
2710 O=O-OF
2720 CO=COS(O):SO=SIN(O)
2730 D=(L-SA*ST-CA*CO*CT)/LO
2740 X=XC-5+CA*SO/D
2750 Y=YC-5-(SA*CT-CA*CO*ST)/D
2760 RETURN
2800 A$=INKEY$:IF A$<>""THEN 2800
2802 BR=6+MO:IF ERR=2 THEN CLS:SCREEN 0,1:COLOR BR:IF ERR=25 OR ERR=57 OR ERR=24 OR ERR=68 THEN LOCATE 5,5:PRINT"There is some error":LOCATE 7,5:PRINT"with your hardware.":LOCATE 9,5:PRINT"Please check your equipment.":GOTO 2814
2804 IF ERR=57 OR ERR=25 OR ERR=24 OR ERR=68 THEN ERT=ERT+1:RESUME 0
2806 CLS:SCREEN 0,1:COLOR BR:IF ERR=72 THEN LOCATE 5,5:PRINT"Your diskette has gone bad.":LOCATE 7,5:PRINT"Place another copy of":LOCATE 9,5:PRINT"P.C. Planetarium in your":LOCATE 11,5:PRINT"diskette drive.":GOTO 2814
2808 IF ERR<>71 AND ERR<>53 THEN RESUME 2850 ELSE COLOR BR:LOCATE 5,5:PRINT"There is some trouble with the":LOCATE 6,5:PRINT"diskette. Please be sure that":LOCATE 7,5:PRINT"the P.C. Planetarium diskette":LOCATE 8,5:PRINT"is in your diskette drive and
2810 LOCATE 9,5:PRINT"that the diskette drive door":LOCATE 10,5:PRINT"is closed."
2814 LOCATE 20,5:PRINT"Press";:COLOR 15:PRINT" ENTER";:COLOR BR:PRINT" when you are ready."
2820 A$=INKEY$:IF A$=""THEN 2820 ELSE IF A$<>CHR$(13) THEN 2820 ELSE SCREEN 1:COLOR C1,C2:LOCATE 1,1:PRINT"Please wait...";:RESUME
2850 CHAIN "front"
2900 'JD from yf mf df hf mif
2910 DD=DF+(HF+(MIF/60))/24:YY=YF:MM=MF:IF MF<3 THEN YY=YY-1:MM=MM+12
2920 B=0:IF(YF+MF/100+DD/10000)>=1582.1 THEN A=INT(YY/100):B=2-A+INT(A/4)